package com.lz.timer.an.enums;

import com.lz.service.common.enums.interfaces.IntegerEnum;
import org.apache.commons.lang3.EnumUtils;

/**
 * 占档状态
 *
 * @author rench
 */
public enum DspOutdoorsStallStatusEnum implements IntegerEnum {

    /*
     * 状态
	    0:未变动库存
        1:占档
        2:锁库
	*/

	UNCHANGED_INVENTORY(0),
	FILING_STATUS(1),
	LOCK_STOREHOUSE(2);

    private final Integer value; // 值

    private DspOutdoorsStallStatusEnum(Integer value) {
        this.value = value;
    }

    @Override
    public Integer value() {
        return this.value.intValue();
    }

    /**
     * 值相等
     *
     * @param value
     * @return
     */
    public boolean eqValue(Integer value) {
        if (value != null && this.value == value) {
            return true;
        }
        return false;
    }

    /**
     * 值不相等
     *
     * @param value
     * @return
     */
    public boolean neValue(Integer value) {
        return !eqValue(value);
    }

    /**
     * 判断是否存在指定值
     *
     * @param value
     * @return
     */
    public static boolean hasValue(Integer value) {
        boolean hasVal = false;
        if (getEnum(value) != null) {
            hasVal = true;
        }
        return hasVal;
    }

    /**
     * 判断是否不存在指定值
     *
     * @param value
     * @return
     */
    public static boolean notHasValue(Integer value) {
        return !hasValue(value);
    }

    /**
     * 获取指定值对应的枚举
     *
     * @param value
     * @return
     */
    public static DspOutdoorsStallStatusEnum getEnum(Integer value) {
        if (value == null) {
            return null;
        }
        for (DspOutdoorsStallStatusEnum obj : EnumUtils.getEnumList(DspOutdoorsStallStatusEnum.class)) {
            if (obj.eqValue(value)) {
                return obj;
            }
        }
        return null;
    }

    public Integer getValue() {
        return value;
    }

}
